以前都有想過用一種程式語言實作基本演算法,之前試過 C++
和 Python
,不過寫幾天後就沒碰了 :)
這次是透過 Kotlin
~
以前在 Mobile Application 開發的經驗不多,一開始是透過 Java
開發
在去年,有參加 Google Study Jam 才開始接觸 Kotlin
這次想說透過這 30 天鐵人賽來了解基礎 Kotlin
並實作一些資訊工程上基本的演算法
Kotlin
是一跨平台的、靜態類型的程式語言,最初由 JetBrains 開發,於 2011 年首次發佈。
它是一個通用型的語言,可用於開發各種應用程序,包括 Android 移動應用、Web 應用、桌面應用和服務端應用。
而 Kotlin
的一些主要特點和優勢:
簡潔和表達力:Kotlin
設計簡潔且易讀,減少了程式碼中的冗余。
跨平台:Kotlin
可用於不同的平台,包括 Android、iOS、Web、桌面和服務端。
互操作性:Kotlin
可以與現有的 Java
程式碼無縫互操作。
靜態類型:Kotlin
是一種靜態類型語言,這意味著在編譯時會檢查類型錯誤,這有助於減少運行時錯誤,提高程式碼的可靠性。
官方支持的 Android 語言:Google 在 2017 年宣布 Kotlin
為 Android 官方開發語言,這使得 Kotlin
在 Android 生態系統中變得更加重要。
Java
Kotlin 的優勢:
簡潔性和可讀性: Kotlin
的語法相對簡潔,減少了冗余的程式碼,使程式碼更易讀、維護和理解。
Null Safety: Kotlin
在語言層面上提供了 Null Safety,可以避免許多空指針異常(NullPointerException)的問題,使程式碼更可靠。
函數式編程支持: Kotlin
支持函數式編程風格,包括高階函數、Lambda 表達式和不可變性,這有助於編寫更具表達力的程式碼。
互操作性: Kotlin
與 Java
無縫互操作,可以在 Kotlin
項目中使用現有的 Java
程式碼,而無需進行重大修改。
擴展函數: Kotlin
允許為現有的類添加新的函數,而不需要修改它們的源碼,這種功能被稱為擴展函數。
更好的工具支持: Kotlin
在流行的集成開發環境(IDE)中有良好的支持,如 IntelliJ IDEA 和 Android Studio。
Java 的優勢:
成熟度: Java
是一門成熟的語言,已經存在多年,擁有龐大的生態系統和社區支持。
廣泛的應用範圍: Java
可用於多個領域,包括桌面應用、Web 應用、企業應用、大數據和服務端開發等。
性能: Java
在某些情況下可能比 Kotlin
稍微更快,因為它經過了多年的優化。
大型專案支持: Java
適用於大型和複雜的專案,並具有豐富的庫和框架。
以下圖片僅針對 Android 開發進行比較
以下是一些 Kotlin
開發環境(IDE)和工具:
IntelliJ IDEA(帶 Kotlin 插件):只需在 IntelliJ IDEA 中安裝 Kotlin extension,即可開始使用 Kotlin
開發。這是許多 Kotlin
開發人員的首選。
Android Studio:它基於 IntelliJ IDEA,並且內置了對 Kotlin
的支持。Android 官方推薦 Kotlin
作為 Android 應用程序的開發語言。
Visual Studio Code(帶 Kotlin 插件):Visual Studio Code 是一個輕量級且強大的跨平台代碼編輯器。通過安裝 Kotlin
extension 來在 Visual Studio Code 中開發 Kotlin
項目。
Eclipse(帶 Kotlin 插件)
Kotlin 命令行工具:傾向於使用文本編輯器和命令行,使用它來編譯和運行 Kotlin
程式碼。
Kotlin Playground:無需安裝任何 IDE。
接下來將以 Kotlin
來實作這些演算法 ~
所有 Code 可以在 Github 找到 ~